The Internet, while useful for accessing an almost limitless amount of information, is still clumsy in many respects. An example is when a large file or files have to be downloaded from the Internet, such as for printing or for local storage.
In some cases, a user can simply go to a particular web page and select a print option from a browser, which will result in printout of that web page to a local printer. However, such an operation typically involves printout of just a few pages and therefore generally does not pose undue inconvenience to the user or stress system resources.
In other cases, a PDF (or other file format) of an electronic file may be available for download (including local printing) from the Internet. These types of downloadable electronic files also generally do not pose an undue inconvenience if the files are small in size. However, the drawbacks of the Internet for printing becomes increasingly apparent when there is a large volume of content involved (e.g., the electronic files are large in size, such as an individual file having hundreds or thousands of pages, or there are many individual files to print).
In situations such as these, the user may have to wait a significant amount of time for the download to complete, as is commonly represented by a “Now Downloading” pop-up window, accompanied by a graphic such as a status bar or “flipping pages” that represent the progress of the download. As the download is performed, a network's bandwidth is monopolized by the downloading of the large amount of data, thereby preventing or limiting use of the network by other applications. This is particularly inconvenient if the network traffic and congestion is already high when the download is performed—the large download will take longer to complete (since many users will have to share the available bandwidth), and thus correspondingly cause other network connections to be deprived of network access or have very slow network connections. Moreover, resources at the server side and/or client side may not be able to effectively balance the load, if many large download requests are received from multiple users—a single back-end server can service only a certain amount of download requests at a given time.
Another problem is that if the download is unable to successfully complete, then it has to start over from the beginning. Unsuccessful completion of a download can be caused by a number of incidents, including insufficient disk space (to store the downloaded content), the printer runs out of paper, an interruption in the network connection, the client terminal or printer “locks up,” one or more corrupted files is sent, print spool problems occur, and so forth. While unsuccessful download may not be of great consequence if the amount of content being downloaded is small, the consequences are more significant if the amount of content being downloaded is large. For example, if it has taken a few hours or overnight to complete 99% of a download, one can imagine the frustration if the download fails as it nears completion and thus has to start over again from the beginning.